/**
 * 插槽生成
 */

/**
 * 非作用于插槽名字
 * @type {string[]}
 */
const slotNames = []
/**
 * 作用于插槽名字
 * @type {string[]}
 */
const scopedSlotsNames = ['default', 'header', 'footer', 'title','checkbox','radio','content','filter','edit']

let result = ``
let resultType = `
export interface ItemTypeSlots {`


slotNames.forEach(i => {
  resultType+=`
  ${i}?: (props) => VNode[];`
  result+=`
  <template #${i}>
      <RenderVNode
        :vnodes="__getSlot('${i}')"
      ></RenderVNode>
    </template>`
})
scopedSlotsNames.forEach(i => {
  resultType+=`
  ${i}?: (props) => VNode[];`
  result+=`
  <template #${i}="props"  v-if="__hasSlot('${i}')">
      <RenderVNode
        :vnodes="__getSlot('${i}', props)"
      ></RenderVNode>
    </template>`
})

console.log(result);

resultType+=`
 [key: string]: any;
}`

console.log(resultType)
